AI与艺术的约会 —— 基于ArtEngine的手机照片转化PBR材质流程
Unity ArtEngine 是一款强大的3D内容创建工具,能够借助AI辅助功能创建逼真的数字艺术内容。ArtEngine免去了材质创作工作中冗繁、琐碎的部分(如将照片转换为基于物理渲染的材质、分辨率增强、去模糊、接缝消除、平整和配色等),帮助艺术家聚焦于创作工作流程中能带来附加值的部分。
今天进行一个很有意思的尝试,使用Unity ArtEngine将用手机拍摄的照片最终输出为一个PBR的材质表现。先上最终效果图:
制作的树皮材质
那么接下来我们就一起制作这个有趣的材质。照片转化为PBR材质的大致可以分为两个步骤:
拍摄篇
如果在户外直接采集并拍摄的话,为了避免过多的光线和阴影对制作材质时的影响,最好选择阴天。但今天我们是在室外采集所需的树皮和苔藓实物,在室内进行拍摄。
对于采集实物的时候要特别注意:表面要避免反射、透明以及潮湿。因为这样容易产生高反光,使拍摄的照片产生亮点。再者就是注意拍摄物体尽量平坦。如以下两张树皮,建议选用第一张中的树皮进行拍摄。
然后将我们采集到的一部分小树皮,进行简单的清洁处理,带回工作室。此刻在工作室我已经准备好了一个可以固定手机的支架,调整合适的位置,镜头大致距离树皮30~50cm,为了避免手按拍摄键产生晃动影响照片质量,我用了蓝牙连接器按钮来拍摄。
我们需要一张带有刻度的圆盘背板,这里我在百度上找了一张带有刻度的图片打印出来来充当。
使房间变暗,接下来比较重要的一步是打光,我使用单个便携式漫射光源(通俗点就是LED灯),按照顺时针或者逆时针方向,将光源依次移到材料周围的4等分罗盘刻度点上拍照。此过程中,相机必须保持在固定位置,且不能移动,仅光源移动。当然按照8等分点拍八张以便软件更准确得根据阴影位置的变化来计算高度。
拍摄时光源的位置
Ok,到这里的话,关于如何规范的拍摄照片已经告一段落。接下来就是使用ArtEngine相关功能节点进行制作。
制作篇
在这里我已经默认大家拍出了规范的照片。(当然如果你还是不小心拍出局部高光的照片也没有关系,我会在后续文章中来讲解如何使用ArtEngine去Delight。)
关于ArtEngine的简单使用我会在接下来的制作过程中进行简要说明,但还是希望大家可以去Unity官网或者官方B站上再熟悉下(B站ID:Unity官方)。
首先对我们拍摄的照片进行裁剪,这一步可以在ArtEngine中进行操作,当然你也可以在其他软件上进行裁剪。
ArtEngine Crop裁剪节点
接下俩我们把裁剪过的4张照片直接拖入到ArtEngine Asset窗口中,在节点编辑窗口创建Multi-Angle to Texure节点。从下图的参数中可以看到,照片必须按照拍摄时光源的顺序,也就是顺时针或者逆时针的有序地与Multi-Angle to Texure输入点相连。
最终Multi-Angle to Texure 节点会输出Normal与Albedo两张贴图。接下来我们研究下合成材质节点Compose Material,但我们需要为 Compose Material 节点分配正确的PBR映射类型,ArtEngine Compose Material 节点默认需要提供Albedo、Normal、Height、Roughness、Metalness、 AO 这六种贴图。也可以通过参数Input Connections来修改需要输入的贴图数量。
接下来就按部就班进行分配,首先Multi-Angle to Texure 节点会输出Normal与Albedo贴图,我们直接连接到Compose Material节点相对应的输入参数上。
关于材质的粗糙度贴图,Roughness定义了材质的微表面(粗糙)状况。这里值得注意的是,ArtEngine Compose Material 节点要求输入的贴图是粗糙度贴图(roughness map),而不是光滑度贴图(gloss map)。这两种类型其实几乎没有区别,顶多就是粗糙度贴图是一张反色的图,例如,暗色表示光滑表面,亮色表示粗糙表面。
在上面的理论基础之上,我们来进行粗糙度贴图的制作。先创建Grayscale节点,将Albedo 贴图转换为灰度图,然后创建直方图扫描节点这个节点。其实跟Substance 中的节点是类似的,通过调参来重新调整灰度图的对比度和亮度。
正如上面说提到的,我们需要进行一次反转,转化成粗糙度贴图。
接着我们要生成高度贴图了,ArtEngine提供了Height Generation 节点,允许直接从法线贴图生成高度贴图。继续添加AO Generation 节点,由高度贴图生成AO贴图。
OK,我们按照类型连接好后,就已经成功了80%了。
双击Compose Material,可以看到我们目前输出的材质效果图,会发现材质的接缝问题很严重。
这个怎么处理呢?我们可以使用 ArtEngine提供的Seam Removal 节点 智能的去除接缝,这无疑避免了美术手动去接缝的麻烦。
以上的具体节点连接步骤如下所示。
除此之外,还有一个节点必须介绍,那就是Mutation突变节点。这对创作材质变体绝对非常有用。只要修改节点的参数就可以获得不同的效果。试想下这会是一个多么美妙的体验。
另外,ArtEngine还包括提高分辨率、去模糊、展平、色彩匹配等功能。讲到这里,我们创作材质的过程就已经完成啦,接下来用Export to Unity节点将我们制作完成的材质导入到Unity中,就可以进行使用了。关于这块我会在下一篇文章进行介绍。
下篇我还会分享将树皮与苔藓混合后的材质制作过程。先放个效果图。
如果你想要了解更多关于Unity ArtEngine的细节,欢迎访问以下链接:
[1] Unity ArtEngine官网:
https://unity.com/cn/products/unity-artengine
[2] Unity ArtEngine 介绍(视频版):
https://www.bilibili.com/video/BV1W741197tf
[3] Unity ArtEngine 自动去除接缝演示:
https://www.bilibili.com/video/BV1De411W7uj
[4] Unity 照片还原模型纹理工作流程介绍:
https://www.bilibili.com/video/av40321080/
[5] Unity ArtEngine 社区问答专区:
https://unity.cn/ask/home?tab=hot&q=ArtEngine
Unity线上技术大会将于11月16日盛大开启,大咖精讲Unity在游戏、工业、传媒娱乐三大领域的最前沿技术,扫码报名即可免费参与。
长按关注
第一时间了解Unity引擎动向,学习最新开发技巧
每一个“在看”,都是我们前进的动力